1. Field of Invention
This invention generally relates to Voice Over Internet Protocol (VoIP) communication and, more particularly, to detection of defective connections.
2. Related Art
In a VoIP system, voice information is transmitted as packets over the Internet. FIG. 1 shows a schematic diagram of a VoIP system 100, according to the prior art.
First telephone 105 at location A may be used to place a call to a second telephone 106 at location B. First telephone 105 uses VoIP by sending signal information and voice information over network 130 using VoIP gateway device 110 and router 120. Gateway device 110 includes memory 111 and one or more processors 112 to implement VoIP processing. Router 120 includes a network interface 121 to interface with network 130. Device 110 and router 120 may be separate modules, as shown, or may be implemented as a single module. Note that second telephone 106 at location B is shown without a VoIP device (e.g., it may have a standard public switched telephone network (PSTN) connection), or it may have the same configuration that is implemented at location A.
In some systems, voice (media) information and signal information may travel over different paths, referred to as the media path and the signaling path. The signaling path and the media path may be over different networks. The signal information is non-voice information used to place, route, and terminate the telephone call. The signaling path is between location A and VoIP service provider 140, while the media path is between location A and location B. Both location A and location B receive and/or transmit media information and signaling information for the telephone call.
VoIP is generally transported using Real-Time Transport Protocol (RTP) and Real Time Control Protocol (RTCP). RTP is an Internet protocol standard for management of real-time transmission of multimedia data.
RTP combines its data transport with Real Time Control Protocol (RTCP), which makes it possible to monitor data delivery for large multicast networks, so that packet loss may be detected and so that delay jitter may be compensated. Both RTP and RTCP work independently of the underlying transport layer and network layer protocols. Information in the RTP header tells the receiver how to reconstruct the data and describes how the codec bit streams are packetized. RTP generally runs on top of the User Datagram Protocol (UDP), although it can use other transport protocols. Both the Session Initiation Protocol (SIP) and H.323 use RTP for voice (media) communications.
RTP components include: a sequence number, which is used to detect lost packets; payload identification, which describes the specific media encoding so that it can be changed if it has to adapt to a variation in bandwidth; frame indication, which marks the beginning and end of each frame; source identification, which identifies the originator of the frame; and intramedia synchronization, which uses timestamps to detect different delay jitter within a single stream and compensate for it. RFC 3550 provides standards for RTP protocol. For example, at section 6.2.1, RFC 3550 states “A participant MAY mark another site inactive, or delete it if not yet valid, if no RTP or RTCP packet has been received for a small number of RTCP report intervals (5 is RECOMMENDED). This provides some robustness against packet loss. All sites must have the same value for this multiplier and must calculate roughly the same value for the RTCP report interval in order for this timeout to work properly. Therefore, this multiplier SHOULD be fixed for a particular profile.”
RTCP components include: quality of service (QoS) feedback, which includes the numbers of lost packets, round-trip time, and jitter, so that the sources can adjust their data rates accordingly; session control, which uses the RTCP BYE packet to allow participants to indicate that they are leaving a session; identification, which includes a participant's name, e-mail address, and telephone number for the information of other participants; and intermedia synchronization, which enables the synchronization of separately transmitted audio and video streams.
Some VoIP systems use “comfort noise” to simulate the sound of a traditional telephone system. For such systems, rather than merely transmitting a silent voice packet, the system sends a comfort noise packet (or a series of comfort noise packets) indicating that comfort noise should be generated. Upon receipt of a comfort noise packet, the device at the receiving end generates sound mimicking the static of a traditional telephone connection.
In some circumstances, a single comfort noise packet may be generated, and comfort noise is generated until a media packet is received or the call is disconnected. In other circumstances, comfort noise packets are transmitted periodically during the silent interval.
Although VoIP provides a number of benefits over other communication systems such as the public switched telephone network (PSTN), some aspects are not optimal. For example, a software defect, faulty signaling, or problems at the user location (e.g., failure to properly replace the handset in the cradle) may cause hanging calls or mute calls on the system. Since the customer is billed for the time during which signaling information indicates that a call is active, hanging calls are problematic for VoIP service providers. If customers are billed for silent time, overall customer satisfaction drops. However, if the service provider agrees to remove the charge without being able to substantiate the customer claim that there was an actual hanging call, the doorway is open to customer fraud. In addition, network resources are consumed by the hung call, leading to sub-optimal call handling.
Some existing systems can be used to determine whether a particular network is operational, using signaling refresh techniques (e.g., reINVITE and/or OPTIONS). However, these existing systems are limited. First, the signaling path may be operational, but the media path may not, so that the signaling refresh system will not detect a problem. Second, there is overhead for the refresh operation, which reduces the available bandwidth for signaling transmissions on the signaling path. Finally, the signal refresh techniques are not applicable to systems in which the signaling and media paths are different.
Like reference symbols in the various drawings indicate like elements.